1. Technical Field
The present invention relates generally to planning, scheduling and managing workforce personnel in a “contact center” environment (e.g., a telephone call center, or a contact center that handles one or more of the following contacts: telephone calls, voice mails, faxes, email, web callback requests, web chats, web voice calls, web video calls and outbound calls) in which there is a varying workload by time of day and by day of week to be staffed with agents having different “skill” profiles.
2. Description of the Related Art
A “call center” is an organization of people, telecommunications equipment and management software, with the mission of efficiently handling telephone-based customer contact. A typical call center must balance competing goals. Customers should experience high quality and consistent service as measured, for example, by how long the customer's call must wait in queue before being answered. At the same time, this service should be provided at the lowest possible cost to the call center owner.
“Workforce management” systems provide important tools for meeting the goals of the call center. These systems generate forecasts of call volumes and call handling times based on historical data to determine how much staff will be needed at different times of the day and week. The systems then create schedules that match the staffing to the anticipated needs.
Calls that arrive at a call center generally are classified into “call types” based on the dialed number and possibly other information such as calling number or caller responses to prompts from the network. The call center is typically served by an automatic call distributor (ACD), which identifies the call type of each incoming call and either delivers or queues it. Each call type may have a separate first-in-first-out queue in the ACD. In most existing call centers, the agents answering calls are organized into one or more “teams,” with each team having primary responsibility of the calls in one or more queues. This paradigm is sometimes referred to as “queue/team.”
In the queue/team model, scheduling for each team can be done independently. Suppose, for example, that the call center handles calls for Sales, Service, and Billing, and that each of these call types is served by a separate team. The schedule for Sales agents will depend on the forecast for Sales call volume and on various constraints and preferences applicable to the agents being scheduled, but this schedule is not affected by the call volume forecast for Service or Billing. Further, within the Sales team, agents can be considered interchangeable from a call handling viewpoint. Thus, within a team, schedule start times, break times and the like, may be traded freely among agents in the team to satisfy agent preferences without affecting scheduled call coverage.
It is known in the prior art to provide ACD systems that depart from the queue/team model described above. Calls are still categorized into call types. In place of queues for the call types, however, queues associated with “skills” are provided. The ACD's call distribution logic for the call type determines which queue or queues a call will occupy at various times before it is answered. Agents are not organized into teams with exclusive responsibility for specific queues. Instead, each agent has one or more identified “skills” corresponding to the skills-based queues. Thus, both a given call and a given agent may be connected to multiple queues at the same time. Agent skills designations may be further qualified, for example, as “primary” or “secondary” skills, or with some other designation of skill priority or degree of skill attainment. The ACD call distribution logic may take the skill priority levels into account in its call distribution logic.
In a queue/team environment, when a new call arrived, the ACD determined the call type and essentially asked “Are there any agents available in the team that serves this call type?” If the answer were yes, the team member who had been available the longest would be chosen to handle the new call. If the answer were no, the call would be queued, waiting for a team member to free up. Similarly, when an agent became available, the agent would get the longest-waiting call on any of the queues served by the agent's team.
In a skills-based routing environment, on the contrary, the “matching” of calls to agents by the ACD becomes more sophisticated and thus complicated. Agents who have more than one skill no longer “belong” to a well-defined team that handles a restricted set of calls. Instead, the skills definitions form “implicit” teams that overlap in complex ways. If, for example, a call center has 10 skills defined, then agents could in principle have any of 1024 possible combinations (210) of those skills. Each skill combination could be eligible to handle a different subset of the incoming calls, and the eligible subset might vary with time of day, number of calls in queue, or other factors used by the ACD in its call routing decisions.
Thus, scheduling of agents in a skills-based environment is a much more difficult problem than it is in a queue/team environment. In a skills-based environment, call types cannot be considered in isolation. Thus, for example, a heavy volume of Service calls might place higher demands on multi-skilled agents, causing an unforeseen shortage of coverage for Billing calls. Further, agents with different skills cannot be considered interchangeable for call handling. Thus, trading lunch times between a Sales-only agent and a multi-skill agent might lead to over-staffing Sales at noon while under-staffing Service at 1:00 p.m. This would lead to undesirable results. Moreover, with respect to the needs of a particular call type, a multi-skilled agent might provide no help over a given span of time, might be 100% available for calls of that type, or might be available part of the time and handling other call types for another part of time.
There remains a need in the art to provide workforce management systems for planning and managing call center environments in which agents have unique skill sets. The present invention addresses this need.